package com.dmgis.qxfw.dataservice.businessservice.nyfw.service;

import com.dmgis.qxfw.dataservice.businessservice.api.entity.ny.*;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.qx.*;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.xt.default_station;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.xt.users;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.yj.country_point;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.yj.county_point;
import com.dmgis.qxfw.dataservice.businessservice.common.domain.ActualElemQuery;
import com.dmgis.qxfw.dataservice.businessservice.common.entity.ActualData;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

/**
 @ClassName IFarmInfoService
 @Description TODO
 @Author sun
 @Date 2021/7/13 16:07
 @Version 1.0
 **/
public interface IFarmInfoService {

    List<AgriUser> getUserList(String userName);

    String deleteUser(String id);

    String addUser(AgriUser user);

    String updateUser(String id, AgriUser user);

    List<String> getQuXian();

    List<String> getXiangZheng(String county);

    List<station_info> getStation(String county, String town);

    String deleteWenJuan(String id);

    List<Links> getLinksList();

    String deleteLink(String id);

    String getSelect();

    String locationSta(String lon, String lat);

    /***
     * 加载默认站点
     * @return
     */
    List<default_station> loadDefaultStation();

    /***
     * 加载农业服务站点
     * @return
     */
    List<StationInfo> loadNyStation();

    /**
    * @Description: 获取县市列表
    * @Author: sunshine
    * @Date: 2021/7/29 13:53
    **/
    List<county_point> getCountyCity();

    /**
    * @Description: 获取乡镇列表
    * @Author: sunshine
    * @Date: 2021/7/29 13:56
    **/
    List<country_point> getTownList(String county);

    /**
    * @Description: 获取站点-农服站
    * @Author: sunshine
    * @Date: 2021/7/29 14:02
    **/
    List<StationInfo> getNFList(String county, String town);

    /**
    * @Description: 获取站点-区域站
    * @Author: sunshine
    * @Date: 2021/7/29 14:03
    **/
    List<smallscale_station> getQYList(String county, String town);

    /**
     * @Description: 网络底部栏  根据owner查询wangzhan并渲染
     * @Author: sunshine
     * @Date: 2021/8/1 11:48
     **/
    Object getCrossingGuardView();

    /**
     * 新增网络底部栏
     * @param wangzhan
     * @return
     */
    Object insertWangzhan(Wangzhan wangzhan, users users);

    /**
     * 更新网络底部栏
     * @param wangzhan
     * @return
     */
    Object updateWangzhan(Wangzhan wangzhan,users user,String id);

    /**
     * 获取大小类别
     * @return
     */
    Object getBigType();

    /**
     * 根据大类别获取小类别
     * @param parentid
     * @return
     */
    Object getSmallType(String parentid);

    /**
     * 添加小类别
     * @param articleType
     * @return
     */
    Object insertSmallType(ArticleType articleType, users user);

    /**
     * 更新类别
     * @param articleType
     * @return
     */
    Object updateType(ArticleType articleType, users user);

    /**
     * 删除类别
     * @param id
     * @return
     */
    Object deleteType(String id,users user);

    /**
     * 新增链接
     * @param links
     * @return
     */
    Links insertLinks(Links links,users user);

    /**
     * 根据id友情链接
     * @param links
     * @return
     */
    Links updateLinks(Links links, users user);

    /**
     * 根据id删除友情链接
     * @param id
     * @return
     */
    Object deleteLinks(String id,users user);

    /**
     * 查询站点
     * @return
     */
    Object getStations();

    /**
     * 查询默认站点
     * @return
     */
    Object getDefultStation();

    /**
     * 更新默认站点
     * @param defaultStation
     * @return
     */
    Object updateDefultStation(DefaultStation defaultStation, users user);

    /**
     * 新增默认站点
     * @param defultstation
     * @return
     */
    Object insertDefultStation(DefaultStation defultstation, users user);

    /**
     * 查询所有用户名
     * @return
     */
    Object getAllUsers();

    /**
     * 查询日志
     * @return
     */
    Object getLogs(String startDate, String endDate, String username, String thing) throws ParseException;

    /**
     * 视频关键字搜索
     * @param title
     * @return
     */
    List<Video> getVideo(String title);

    /**
     * 添加视频
     * @return
     */
    Video addVideo(Video video ,users user);

    /**
     * 修改视频
     * @param video
     * @return
     */
    Video updateVideo(Video video, users user);

    /**
     * 根据id删除视频
     * @param id
     * @return
     */
    Object deleteVideo(String id, users user);

    /**
     * 根据关键字搜索信息公告
     * @param title
     * @return
     */
    Object getMessage(String title);

    /**
     * 新增公告信息
     * @param messageYuan
     * @return
     */
    Object insertMessages(MessageYuan messageYuan,users user);

    /**
     * 更新信息公告
     * @param messageYuan
     * @return
     */
    Object updateMessages(MessageYuan messageYuan, users user);

    /**
     * 删除公告
     * @param id
     * @return
     */
    Object deleteMessages(String id, users user);

    /**
     * 网络上报
     * @param infocollectorInfo
     * @return
     */
    InfocollectorInfo insertShangBao(InfocollectorInfo infocollectorInfo, users user);

    /**
     * 网络上报查看
     * @param strname
     * @return
     */
    List<InfocollectorInfo> getShangBao(String strname,String startDate,String endDate,String type) throws ParseException;


    /**
     * 网络上报统计
     * @return
     * @param startDate
     * @param endDate
     * @param strname
     */
    List<InfocollectorInfo> getShangBaoTotal(String strname,String startDate, String endDate,String type) throws ParseException;

    /**
     * 灾情统计
     * @param disaster
     * @return
     */
    Object inertZhShangBao(EmergencyDisaster disaster, users user);

    /**
     * 下发信息
     * @param manageInfo
     * @return
     */
    Object insertManageInfo(ManageInfo manageInfo,users user);

    /**
     * 下发信息查看
     * @param username
     * @return
     */
    Object getManageInfo(String username,String startDate,String endDate);

    /**
     * 下发统计信息
     * @param
     * @return
     */
    Object getXiaFaTongji(String startDate,String endDate);

    /**
     * 查询农气信息
     * @param title
     * @param bigtype
     * @return
     */
    List<Addwendang> getArcticlelist(String title, String bigtype);

    /**
     * 新增农气信息
     * @param wendang
     * @param user
     * @return
     */
    Addwendang addArcticlelist(Addwendang wendang, users user);

    /**
     * 修改农气信息
     * @param wendang
     * @param user
     * @return
     */
    Addwendang updateArcticlelist(Addwendang wendang, users user);

    /**
     * 删除农气信息
     * @param id
     * @param user
     * @return
     */
    Object deleteArcticlelist(String id, users user);


    /**
     * 查询信息InfoCollector
     * @return
     */
    Object getInfoCollector();

    /**
     * 查询站点信息
     * @return
     */
    Object getStationInfo(String stationid);

    List<Video> getVideoById(String id);

    Object getCityWeather(String forecaststationid, String sc, String date);

    List<admin_code> getCity();

    Date droughtInitTime();

    List<drought> droughtChart(String startDate, String endDate, String stationname);

    List<soil_humidity> soilChart(ActualElemQuery elemQuery, String startDate, String endDate, String level);

    Date soilInitTime();

    String checkId(String stationName);

    List<cropyield_history> checkInfo(String stationId);

    List<ActualData> qxElementQuery(ActualElemQuery elemQuery);

    List<cropyield_history> createChart(ActualElemQuery elemQuery, String type, String startDate, String endDate);

    List<cropyield_history> createChart1(ActualElemQuery elemQuery, String type, String startDate, String endDate);

    List<crop_growdate_history> growChart(ActualElemQuery elemQuery, String type, String startDate, String endDate, String datename);

    List<crop_growdate_history> growChart1(ActualElemQuery elemQuery, String type, String startDate, String endDate, String datename);
}
